1. Field
The embodiments described herein relate generally to motion vector processing, and more particularly, to a method and apparatus for fixed block-size and variable block-size motion vector processing, content adaptive motion vector smoothing, motion vector scaling, motion vector labeling, motion vector classification, and video processing.
2. Background
Low bitrate video compression is very important in many multimedia applications such as wireless video streaming and video telephony due to both the limited bandwidth resources and the variability of available bandwidth. Bandwidth adaptation of video coding at low bitrates can be accomplished by reducing the temporal resolution. In other words, instead of compressing and sending a thirty (30) frame per second (fps) bit-stream, the temporal resolution can be halved to fifteen (15) fps to reduce the transmission bit-rate. However, the consequence of reducing temporal resolution is the introduction of temporal domain artifacts, such as motion jerkiness, that significantly degrades the visual quality of the decoded video.
To display the full frame rate at the receiver side, a recovery mechanism, called frame rate up conversion (FRUC), is needed to re-generate the skipped frames and to reduce temporal artifacts. Generally, the FRUC process is the process of video interpolation to create additional frames at the video decoder to increase the perceived frame rate of the (reconstructed) video. Typically, each frame is divided into specific graphics elements such as individual pixels or blocks of pixels referred to as “macro blocks.” Motion vectors, which describes the movement of these elements from one reference frame to the next, are used to predict the position of each element on an interpolated frame between the two reference frames. The creation and processing of the group of motion vectors for a particular frame, which are referred to as a motion vector field or motion field, is an important part of achieving a reconstructed video stream with a desired quality within particular processing boundaries. However, without proper processing of the motion field, which includes the elimination of outlier motion vectors—i.e., motion vectors that do not accurately describe the movement of the graphical elements, the quality of the reconstructed video will be significantly reduced.